/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controlador.Service.Compras;

import Controlador.Bean.Compras.ProductoxOrden;
import Controlador.Bean.Log.Log;
import Data.config.SessionFac;
import gui.General.Main;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import org.apache.ibatis.session.SqlSession;

/**
 *
 * @author LiziTa
 */

public class ServicioProductoxOrden {
    
       java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date fecha= new Date();
        String f=sdf.format(fecha);
    
    public List<ProductoxOrden> seleccionarTodo(String id){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
        List<ProductoxOrden> data = (List)sqlsession.selectList("Data.Compras.ServicioProductoxOrden.seleccionarFiltro",id);
        sqlsession.close();
        return data; 
       
    }
    }
    
    
      public List<ProductoxOrden> obtenerProdxOrdenFactura(String id){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
            if (id==null) id ="";
        List<ProductoxOrden> data = (List)sqlsession.selectList("Data.Compras.ServicioProductoxOrden.obtenerProdxOrdenFactura",id);
        sqlsession.close();
        return data; 
       
    }
    }
    
       
    
            
             public Double obtenerCantOrden(String id){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
        Double data = sqlsession.selectOne("Data.Compras.ServicioProductoxOrden.obtenerCantOrden",id);
        sqlsession.close();
        return data; 
       
    }
    }
             
             public String obtenerRazon(String id,String prov){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
            HashMap<String, String> hm = new HashMap<>();
            if (id==null) id="";
            if (prov==null) prov="";
            
        hm.put("id", "%"+id+"%");
        hm.put("prov", "%"+prov+"%");
        String data = sqlsession.selectOne("Data.Compras.ServicioProductoxOrden.obtenerRazon",hm);
        sqlsession.close();
        return data; 
       
    }
    }
             
             
             
             
            
    
      public List<ProductoxOrden> seleccionarFiltro2(String id){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
        List<ProductoxOrden> data = (List)sqlsession.selectList("Data.Compras.ServicioProductoxOrden.seleccionarFiltro2",id);
        sqlsession.close();
        return data; 
       
    }
    }
      
      
       public List<ProductoxOrden> FiltroSolAlmacen(String id){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
        List<ProductoxOrden> data = (List)sqlsession.selectList("Data.Compras.ServicioProductoxOrden.FiltroSolAlmacen",id);
        sqlsession.close();
        return data; 
       
    }
    }
      
      public List<ProductoxOrden> SolAlmEnviadas(String id){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
        List<ProductoxOrden> data = (List)sqlsession.selectList("Data.Compras.ServicioProductoxOrden.SolAlmEnviadas",id);
        sqlsession.close();
        return data; 
       
    }
    }
      
    
  
    
    public List<ProductoxOrden> filtrarProductoxOrden(String id, String nombre){
       
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
        HashMap<String, String> hm = new HashMap<>();
        hm.put("id", "%"+id+"%");
        hm.put("nombre", "%"+nombre+"%");
        List<ProductoxOrden> data = (List)sqlsession.selectList("Data.Compras.ServicioProductoxOrden.filtrarProductoxOrden", hm);
        sqlsession.close();
        
          return data;
         
        }
       
       
    }
    
    
      public void guardar(ProductoxOrden productoxOrden,String id){
       try(SqlSession sqlsession= SessionFac.SessionFactory().openSession()){
        productoxOrden.setIdOrdenCompra(id);
        sqlsession.insert("Data.Compras.ServicioProductoxOrden.guardar", productoxOrden);
       sqlsession.commit();
        sqlsession.close();
         Log.setInstancia(Main.usu.getIdEmpleadoAdm(),"CMPORDCP","Guardar productos por orden de compra",f );
         }catch(Exception ex){
            ex.printStackTrace();
        }
        
    }
      
      
       public Double suma(String id){
        SqlSession sqlsession= SessionFac.SessionFactory().openSession();
          Double data = sqlsession.selectOne("Data.Compras.ServicioProductoxOrden.suma",id);
          sqlsession.close(); 
        return data;
    }
      
        
    public void actualizar(ProductoxOrden productoxOrden,String idprod,String idorden){
        try(SqlSession sqlsession= SessionFac.SessionFactory().openSession()){
        sqlsession.update("Data.Compras.ServicioProductoxOrden.actualizar", productoxOrden);
        sqlsession.commit();
        sqlsession.close();
          Log.setInstancia(Main.usu.getIdEmpleadoAdm(),"CMPORDCP","Actualizar productos por orden de compra",f );
         }catch(Exception ex){
            ex.printStackTrace();
        }
        
    }
    
    
      public void eliminar(ProductoxOrden pxo){
        try(SqlSession sqlsession= SessionFac.SessionFactory().openSession()){
        sqlsession.delete("Data.Compras.ServicioProductoxOrden.eliminar",pxo);
         sqlsession.commit();
        sqlsession.close();
          Log.setInstancia(Main.usu.getIdEmpleadoAdm(),"CMPORDCP","Eliminar productos por orden de compra",f );
         }catch(Exception ex){
            ex.printStackTrace();
        }
    }
    
 }